<?php 
/**
 * 列表页控制器
 * @author 妮妮 <962611024@qq.com>
 */
class ListController extends Controller{
    /**
     * 默认访问方法
     */
    public function index(){
    	//查询cid对应的商品
    	
    	$cid = Q('get.cid',0,'intval');
		//处理面包屑导航*************
		//找到所有的分类
		$cateData=M('category')->all();
		//p($cateData);
		//查找一条
		$Data=M('category')->where("cid={$cid}")->find();
		//tid就是分类里的tid
		$tid=isset($Data['tid'])?$Data['tid']:0;
		if($tid){
			//判断tid有值的时候就走这一步
			$attrData=M('type_attr')->where("tid={$tid}")->all();
			foreach ($attrData as $k => $v) {
				$attrData[$k]['tavalue']=explode(',', $v['tavalue']);
			}
		}else{
			//没有给为空
			$attrData=array();
		}
		//条件就是查找类型属性表的tid和分类里的tid相等
		//p($attrData);die;
		//p($attrData);
		//$this->assign('attrData',$attrData);
		//p($pid);
		//扩展模型中的方法category.class直接静态调用就可以
		//面包屑第一个参数是所有的，第二个是pid所以要直接压pid
		$crumbs=Category::getParents($cateData,$Data['pid']);
		//把自己压进去
		$crumbs[]=$Data;
		//p($crumbs);
		$this->assign('crumbs',$crumbs);
		//找到分类pid等于cid所有的数据的子分类
		$sonCate=M('category')->where("pid={$cid}")->all();
		//p($sonCate);die;
		$this->assign('sonCate',$sonCate);
		//查询所有的商品
		//扩展模型中的方法，直接静态调用就可以.第一个传全部分类数组，第二个$cid 父级ID，第三个是否包括父级自己的ID，默认不包括
		//查到所有的分类cid
		/*$cidData=Category::getChildsId($cateData,$cid,1);
		//循环找对对应商品的cid
		foreach ($cidData as $k => $v) {
			$cidData[$k]=M('goods')->where("cid={$v}")->all();
		}
		//p($cidData);die;
		$this->assign('goodsData',$cidData);*/
		
		
		
		
//---------------------列表页筛选-------------------------------		
		
		
		//获得顶级分类
		$topCate = K('Category')->where("pid=0")->all();
		$this->assign('topCate',$topCate);
		
		//通过cid获得所有的所对应的商品的gid
		//$cid = Q('get.cid',0,'intval');
		$gids = K('Category')->cidGetGid($cid);
		//如果分类下面有商品
		if($gids){
			//通过gid查到商品属性(筛选的条件)
			$attr = K('GoodsAttr')->gidGetAttr($gids);
			$this->assign('attr',$attr);
			
			//筛选参数
			$total = count($attr);
			$param = isset($_GET['param']) ? explode('_', $_GET['param']) : array_fill(0, $total, 0);
			//防止用户乱改param参数
			if(count($param) != $total) $param = array_fill(0, $total, 0);
			$this->assign('param',$param);
			//p($param);
			//通过得到的$param进行筛选
			$lastGids = K('GoodsAttr')->filterGids($param,$gids);
			
		}else{
			//如果分类没有商品
			$lastGids = array();
		}
		//p($lastGids);
		$tempData=array();
		foreach ($lastGids as $v) {
			$tempData[]=K('Goods')->where("gid={$v}")->find();
		}
		//p($tempData);
		$this->assign('listGoods',$tempData);
		//载入模板
  		$this->display(); 
    }

 }
 
 
 
 
 
 
 
 
 
 
 























 ?>